package com.sinog.basic.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sinog.core.domain.Department;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;

/**
 * @desc 系统管理 - 部门管理 - 部门管理 - DepartmentMapper
 * @author -
 * @date -
 */
public interface DepartmentMapper extends BaseMapper<Department> {

    /**
     * 根据ID查询部门信息
     * @param id id
     * @return Department
     */
    Department selectByDeptId(@Param("id") String id);

    /**
     * 获取点击节点的部门信息
     * @param id id
     * @param pid pid
     * @param type 查询类型、1:(loadTree),2:(loadTreeNoParent),3:(getDepartInfo)
     * @return List<Map < String,String>>
     */
    List<Map<String,String>> getDepartInfo(String id,String pid,String type);

    /**
     * 根据ID查询全部父ID
     * @param id id
     * @return List<String>
     */
    List<String> selectCache(String id);

    /**
     * 根据ID查询全部子ID
     * @param id id
     * @return List<String>
     */
    List<String> selectChilds(String id);

    /**
     * 根据level和pid查询tbsys_department表最大ID
     * @param level level
     * @param pid pid
     * @return String
     */
    String selectMaxDeptId(String level,String pid);

    /**
     * 查询tbsys_department表sn序列号最大+1
     * @param provinceCode provinceCode
     * @param level level
     * @return String
     */
    String selectMaxDeptIds(String provinceCode,String level);

    /**
     * 查询tbsys_department表sn序列号最大+1
     * @param provinceCode provinceCode
     * @return String
     */
    String selectMaxDeptIdSpecial(String provinceCode);

    /**
     * 预安置管理 - 全部人员管理-入监单位
     * @param departId departId
     * @return List<Map<String,String>>
     */
    List<Map<String,String>> getrjdanwei(String departId);
}